2023-11-11
스택 수열
https://www.acmicpc.net/problem/1874
임의의 수열을 스택으로 구현할 수 있는지 없는지 push는 "+", pop은 "-"
for문 안에도 data = int(input())를 입력할 수 있음
내가 쓴 답변
# 1. n만큼 숫자를 입력받는 입력값 m을 위한 반복문 생성 # 2. 리스트의 마지막 요소가 m과 같아질 때까지 리스트에 1씩 늘어나는 값을 추가한다. # 3. 리스트의 마지막 요소와 m이 같다면 pop한다. # 4. 리스트의 마지막 요소가 m보다 크다면 NO를 출력한다. n = int(input()) stack = [] result = [] isNo = False num = 1 for _ in range(n): m = int(input()) while num <= m: stack.append(num) result.append("+") num += 1 if stack[-1] == m: stack.pop() result.append("-") elif stack[-1] > m: isNo = True print("NO" if isNo else '\n'.join(result))
다른 답변
n = int(input()) count = 1 stack = [] result = [] for i in range(1, n + 1): data = int(input()) while count <= data: stack.append(count) count += 1 result.append('+') if stack[-1] == data: stack.pop() result.append('-') else: print('NO') exit(0) print('\n'.join(result))
